package com.inspur.edp.team;

import com.inspur.edp.team.dto.TeamMember;
import io.iec.edp.caf.sysmanager.api.data.user.User;

import java.util.List;

/**
 * 开发团队成员服务
 */
public interface PaasTeamMemberService {
    /**
     * 添加成员
     *
     * @param teamMember
     * @return
     * @
     */
    String addMember(String teamId, TeamMember teamMember);

    /**
     * 移除成员
     *
     * @param userId
     * @return
     * @
     */
    String removeMember(String teamId, String userId);

    /**
     * 编辑成员
     *
     * @param teamId
     * @param teamMember
     */

    String updateMember(TeamMember teamMember,String teamId);

    /**
     * 获取成员列表
     *
     * @return
     * @
     */
    List<TeamMember> getMemberListByTeamId(String teamId);
    /**
     * 查询团队下成员角色
     *
     */
    TeamMember getMemberByTeamId(String teamId);
    /**
     * 查询成员归属的所有团队信息
     *
     * @return
     * @
     */
    List<TeamMember> getMemberByUserId(String userId);
    /**
     * 查询所有团队信息
     *
     * @return
     * @
     */
    List<TeamMember> getAll();

    /**
     * 校验用户是否是该团队下的成员
     *
     * @param userId
     * @param userName
     * @param teamId
     */
    void accessPermissioncheck(String userId, String userName, String teamId);

    void accessPermissioncheck(String teamId);

    /**
     * 根据用户ID和团队ID校验用户是否为管理员
     * @param userId
     * @param userName
     * @param teamId
     */
    void editRoleCheck(String userId, String userName, String teamId);

    /**
     * 用户名过滤查询
     * @param usersStr
     */
    List<User> checkUserRes(String usersStr);
}
